package Hot100;

import java.util.Stack;

/**
 * @author zhangmin
 * @create 2021-12-30 17:25
 * 155. 最小栈
 * 设计一个支持 push ，pop ，top 操作，并能在常数时间内检索到最小元素的栈。
 */
public class MinStack {

    int min=Integer.MAX_VALUE;
    Stack<Integer> stack;
    public MinStack() {
        stack=new Stack<>();
    }

    public void push(int val) {
        if (val<=this.min){
            //更新最小元素的值
            stack.push(min);
            min=val;
        }
        this.stack.push(val);
    }

    public void pop() {
        if (stack.pop()==this.min){
            this.min=stack.pop();
        }
    }

    public int top() {
        return stack.peek();
    }

    public int getMin() {
        return min;
    }
}
